// #include "Network.hpp"
// #include <iostream>
// #include <thread>



// void th_recv(Network *network,SOCKET socket)
// {
//     std::cout << "start recv\n";
//     NetworkMsg msg;
//     while (true)
//     {
//         int res = network->recv(socket,msg.msg, 0xff, 0);
//         if (res > 0)
//         {
//             printf("%s:%s\n", inet_ntoa(msg.sock_addr.sin_addr), msg.msg);
//         }
//         else if (res == 0)
//         {
//             printf("%s:disconnected\n", inet_ntoa(msg.sock_addr.sin_addr));
//         }else{
//             return ;
//         }
//     }
//     std::cout << "end recv\n";
// }

// int main1()
// {
//     if (Network::init())
//     {
//         std::cout << "WSAStartup faild :" << GetLastError() << std::endl;
//         return 0;
//     }
//     Network::setSocketInfo(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//     Network net;

//     if (!net.createSocket())
//     {
//         std::cout << "createSocket faild :" << GetLastError() << std::endl;
//     }
//     int server = 0;
//     std::cout << "server?:";
//     std::cin >> server;
//     NetworkMsg msg;
//     if (server)
//     {
//         if (!net.bind(333))
//         {
//             std::cout << "bind faild :" << GetLastError() << std::endl;
//         }
//         if (!net.listen(20))
//         {
//             std::cout << "listen faild :" << GetLastError() << std::endl;
//         }
//         while (true)
//         {
//             if (net.accept(&msg))
//             {
//                 printf("%s connected\n", inet_ntoa(msg.sock_addr.sin_addr));
//                 strcpy(msg.msg, "Hello");
//                 if (!net.send(msg.socket,msg.msg, 0xff, 0))
//                 {
//                     std::cout << "send faild :" << GetLastError() << std::endl;
//                 }
//                 std::thread th(&th_recv, &net, msg.socket);
//                 th.detach();
//             }
//             while (true)
//             {
//                 std::cin >> msg.msg;
//                 int res=net.send(msg.socket,msg.msg,0xff, 0);
//                 if (res==0)
//                 {
//                     std::cout << "close\n";
//                 }
//             }
//         }
//     }
//     else
//     {
//         if (!net.connect("127.0.0.1", 333))
//         {
//             std::cout << "connect faild :" << GetLastError() << std::endl;
//         }

//         std::thread th(&th_recv, &net, net.getSocket());
//         th.detach();
//         while (true)
//         {
//             std::cin >> msg.msg;
//             int res=net.send(net.getSocket(),msg.msg,0xff, 0);
//             if (res==0)
//             {
//                 std::cout << "close\n";
//             }
//         }
//     }

//     Network::quit();
//     return 0;
// }